﻿// Kevin Dockx, 11/2009
// The async version of the repository service contract.  This one is matched with the server side version
// (IRepositoryService), which is the contract implemented by a WCF Repository Service (xml, db, azure, ...)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace WhatTheHelp.Core
{

    [ServiceContract(Name="IRepositoryService")]
    public interface IRepositoryServiceClient
    {
        [OperationContract(AsyncPattern = true)]
        IAsyncResult BeginRetrieveHelp(HelpOverlayCriteria HelpOverlayCriteria, AsyncCallback callback, Object state);

        List<HelpOverlay> EndRetrieveHelp(IAsyncResult result);

        [OperationContract(AsyncPattern = true)]
        IAsyncResult BeginStoreHelp(List<HelpOverlay> HelpOverlays, AsyncCallback callback, Object state);

        bool EndStoreHelp(IAsyncResult result);

    }
}
